Modern processors include multiple instances of processor cores that can be turned on or off independently as directed by a Power Control Unit (PCU). A multi-core processor, for example, is a single computing component with two or more independent actual central processing units (also referred to as “cores” or “processor cores”), which are the units that read and execute program instructions. The instructions are typically CPU instructions, but multiple cores can run multiple instructions at the same time, increasing overall speed for programs amenable to parallel computing. Manufacturers typically integrate the cores onto a single integrated circuit die, or onto multiple dies in a single package. A dual-core processor has two cores, a quad-core processor has four cores, and so on. Homogenous multi-core systems include only identical cores, and heterogeneous multi-core systems have cores that are not identical.
At any given time, only a portion of these processor cores can be powered up, with all the disabled ones being power-gated to suppress the leakage power. All active cores wear out in normal use and this wear-out of the active cores can be modeled as a function of the use conditions (operating voltage and temperature) and stress time. Typically manufacturers assume equal utilization of processor cores for their quality and reliability assessment. Present techniques generally cannot enforce equal wear-out for each processor core. For example, popular operating systems usually do not guarantee random core assignment. Without such enforcement, a given processor core can be repetitively assigned to operate at a “turbo” mode, while other cores are turned-off. The turbo mode is a highest performance state of the processor that enables a processor to run above its base operating frequency via dynamic control of the CPU's clock rate. The turbo mode can also be referred to as dynamic overclocking. When in the turbo state, the active cores wear-out much faster than the others and can eventually cause its catastrophic failure. A customer can rightfully disable all but two cores in Basic Input/Output System (BIOS) to ensure they always run in turbo mode, therefore assuming an increased risk of catastrophic failure. A malicious user can write a virus program that can run a specific core in turbo all the time, purposefully causing the system to fail.